package com.qqtech.qquan.homemaking.dao;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.qqtech.core.frame.dao.BaseDao;
import com.qqtech.qquan.homemaking.model.HomemakingBase;
import com.qqtech.qquan.homemaking.model.HomemakingBaseVo;

public interface HomemakingBaseDao extends BaseDao<HomemakingBase> {
	
	/**
	 * 查询记录数
	 * 
	 * @param query
	 *            查询对象，如果为null，则查询对象总数
	 * @return int 记录总数
	 */
	public int queryCountByType(HomemakingBase query);
	
	/**
	 * <pre>
	 * 查询对象列表，注意：在给定非null的分页对象时该方法自动设置分页总记录数,如果query和pageable同时为null则查询所有
	 * </pre>
	 * 
	 * @param query
	 *            查询参数
	 * @param pageInfo
	 *            分页对象
	 * @return Page 信息方便前台显示
	 */
	public Page<HomemakingBaseVo> queryPageListByType(HomemakingBase query, Pageable pageable);
	
	/**
	 * 后台查询记录数
	 * @param query
	 * @return
	 */
	public int queryCountAdmin(HomemakingBase query);
	
	/**
	 * 后台查询
	 * @param query
	 * @param pageable
	 * @return
	 */
	public Page<HomemakingBaseVo> queryPageListAdmin(HomemakingBase query, Pageable pageable);
	
	/**
	 * 增加家政服务的预约数量
	 * @param id 家政id
	 * @return
	 */
	public int addOrderedCount(Integer id);
	
	/**
	 * 查询可以预约的服务人员数
	 * 
	 * @param query
	 *            查询对象，如果为null，则查询对象总数
	 * @return int 记录总数
	 */
	public int queryCountByCanServise(HomemakingBase query);
	
	/**
	 * 查询可以预约的服务人员
	 * 
	 * @param query
	 *            查询参数
	 * @param pageInfo
	 *            分页对象
	 * @return Page 信息方便前台显示
	 */
	public Page<HomemakingBaseVo> queryPageListByCanServise(HomemakingBase query, Pageable pageable);
}
